Currently, certain network-accessible queuing services generally guarantee high availability, scalability and at-least-once delivery, but do not guarantee ordering consistency with respect to messages. Messages can be delivered without preserving order. Additionally, messages can be delivered with duplicates. This allows such network-accessible queuing services to have very high scalability, but requires user software to be aware of potential duplicate messages and employ complicated strategies to cope with the possibility (e.g., ignore duplicates, reorder messages or design the protocol between message producer and message processor to be idempotent).
On the other hand, certain on-premise messaging services claim to preserve order of messages and exactly-once delivery. However, this functionality can be invalidated when such on-premise messaging services are configured in multi-node scalable clusters, in high-availability setups during failover or when the message producer/processor fails unexpectedly. It is generally easier for developers to write program code that does not have to deal with messages delivered out of order and/or duplicated. Furthermore, the message queues for the multi-node scalable clusters can become overloaded if not properly managed, thereby increasing latency of the message processing.
The disclosure made herein is presented with respect to these and other considerations.